package uk.co.kevinlockwood.kol.messages;

import java.util.ArrayList;
import java.util.List;

import android.os.Binder;
import android.os.Handler;
import android.os.Message;

public class KoLMessageServiceBinder extends Binder {
	private int maxlength = 300;
	private List<KoLMessage> messages = new ArrayList<KoLMessage>();
	private Handler handler = null;

	public void addMessage(KoLMessage msg) {
		messages.add(msg);
		if (messages.size() > maxlength) {
			messages.remove(0);
		}
		sendMessage(msg);
	}

	public void haveHandler(Handler activityhandler) {
		this.handler = activityhandler;
		sendMessage(this);
		for (KoLMessage msg : messages) {
			sendMessage(msg);
		}
	}

	private void sendMessage(Object msgobj) {
		if (handler == null || msgobj == null) return;
		Message msg = Message.obtain();
		msg.obj = msgobj;
		handler.sendMessage(msg);
	}
}